package com.webfinal.backsystem.service;

import com.webfinal.backsystem.request.order.*;
import com.webfinal.backsystem.response.order.*;

public interface OrderService {
    /**
     * 下单
     * @param request
     * @return
     */
    PlaceOrderResponse placeOrder(PlaceOrderRequest request) throws Exception;

    /**
     * 支付
     * @param request
     * @return
     */
    OrderPayResponse orderPay(OrderPayRequest request) throws Exception;

    /**
     * 发货
     * @param request
     * @return
     */
    DeliverGoodsResponse deliverGoods(DeliverGoodsRequest request);

    /**
     * 收货
     * @param request
     * @return
     */
    TakeDeliveryResponse takeDelivery(TakeDeliveryRequest request);

    /**
     * 申请退款
     * @param request
     * @return
     */
    RefundApplyResponse refundApply(RefundApplyRequest request);

    /**
     * 退款审核
     * @param request
     * @return
     */
    RefundApplyResponse refundAudit(RefundAuditRequest request);

    /**
     * 退款
     * @param request
     * @return
     */
    RefundResponse refund(RefundRequest request);

    /**
     * 用户查询自己的订单数据
     * @param request
     * @return
     */
    QueryOrderResponse queryOrder(QueryOrderRequest request);

    OrderinfoResponse deliverOrder();
    OrderinfoResponse refundAuditOrder();
    OrderinfoResponse refundOrder();

    UpdateOrderDetailResponse updatedeliverOrder(UpdateOrderDetailRequest updateOrderDetailRequest);
    UpdateOrderDetailResponse updaterefundAuditOrder(UpdateOrderDetailRequest updateOrderDetailRequest);
    UpdateOrderDetailResponse updaterefundOrder(UpdateOrderDetailRequest updateOrderDetailRequest);

    SearchOrderResponse searchorder(SearchOrderRequest searchOrderRequest);
    SearchOrderResponse searchallorder();

    OrderProductsResponse orderproducts(OrderProductsResquest orderProductsResquest);
    OrderProductsResponse orderproductsall();

}
